package cn.tedu.spring.mapper;

import cn.tedu.spring.entity.User;
import cn.tedu.spring.vo.UserVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
@Repository
// 因为是接口，没必要添加注解，通过映射配置来指定该接口即可！
public interface UserMapper {
    /**
     * 通过id查询用户详情
     * @param id 用户的id
     * @return 返回用户的所有信息
     */
    User selectOneById(Integer id);

    /**
     * 根据用户的名称查询用户的详情
     * @param username 指定查询用户的名称
     * @return 返回用户的详情
     */
    User selectOneByUsername(String username);

    /**
     * 查询所有用户信息
     * @return 返回所有用户的信息
     */
    List<UserVO> selectAll();

    /**
     * 根据指定id更新用户的密码
     * @param user 待更新的用户
     * @return 返回影响的行数
     */
    int updateInfo(User user);

    /**
     * 删除指定用户的信息
     * @param id 指定删除的用户id
     */
    int deleteOne(Integer id);

    /**
     * 插入一条用户数据
     * @param user 待插入的用户数据
     * @return 返回影响的行数
     */
    int insertOne(User user);
}
